package com.gec.zhs.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 代码生成器的表信息
 * @TableName buildertable
 */
@TableName(value ="buildertable")
@Data
public class Buildertable implements Serializable {
    /**
     * 编号
     */
    @TableId
    private String id;

    /**
     * 表英文全称
     */
    private String tablename;

    /**
     * 表描述、中文名称
     */
    private String comment;

    /**
     * 子表英文全称
     */
    private String detailtablename;

    /**
     * 子表描述、中文名称
     */
    private String detailcomment;

    /**
     * 实体类名称
     */
    private String classname;

    /**
     * 命名空间
     */
    private String namespace;

    /**
     * 模块标识
     */
    private String modulecode;

    /**
     * 模块名称
     */
    private String modulename;

    /**
     * 代码相对文件夹路径
     */
    private String folder;

    /**
     * 其它生成选项
     */
    private String options;

    /**
     * 分类ID
     */
    private String typeid;

    /**
     * 分类名称
     */
    private String typename;

    /**
     * 创建时间
     */
    private Date createtime;

    /**
     * 创建人ID
     */
    private String createuserid;

    /**
     * 修改时间
     */
    private Date updatetime;

    /**
     * 修改人ID
     */
    private String updateuserid;

    /**
     * 修改人姓名
     */
    private String updateusername;

    /**
     * 创建人姓名
     */
    private String createusername;

    /**
     * 字表外键
     */
    private String foreignkey;

    /**
     * 是否动态加载表头信息
     */
    private Integer isdynamicheader;

    /**
     * 主表Id，如果为空，则默认为主表
     */
    private String parenttableid;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Buildertable other = (Buildertable) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getTablename() == null ? other.getTablename() == null : this.getTablename().equals(other.getTablename()))
            && (this.getComment() == null ? other.getComment() == null : this.getComment().equals(other.getComment()))
            && (this.getDetailtablename() == null ? other.getDetailtablename() == null : this.getDetailtablename().equals(other.getDetailtablename()))
            && (this.getDetailcomment() == null ? other.getDetailcomment() == null : this.getDetailcomment().equals(other.getDetailcomment()))
            && (this.getClassname() == null ? other.getClassname() == null : this.getClassname().equals(other.getClassname()))
            && (this.getNamespace() == null ? other.getNamespace() == null : this.getNamespace().equals(other.getNamespace()))
            && (this.getModulecode() == null ? other.getModulecode() == null : this.getModulecode().equals(other.getModulecode()))
            && (this.getModulename() == null ? other.getModulename() == null : this.getModulename().equals(other.getModulename()))
            && (this.getFolder() == null ? other.getFolder() == null : this.getFolder().equals(other.getFolder()))
            && (this.getOptions() == null ? other.getOptions() == null : this.getOptions().equals(other.getOptions()))
            && (this.getTypeid() == null ? other.getTypeid() == null : this.getTypeid().equals(other.getTypeid()))
            && (this.getTypename() == null ? other.getTypename() == null : this.getTypename().equals(other.getTypename()))
            && (this.getCreatetime() == null ? other.getCreatetime() == null : this.getCreatetime().equals(other.getCreatetime()))
            && (this.getCreateuserid() == null ? other.getCreateuserid() == null : this.getCreateuserid().equals(other.getCreateuserid()))
            && (this.getUpdatetime() == null ? other.getUpdatetime() == null : this.getUpdatetime().equals(other.getUpdatetime()))
            && (this.getUpdateuserid() == null ? other.getUpdateuserid() == null : this.getUpdateuserid().equals(other.getUpdateuserid()))
            && (this.getUpdateusername() == null ? other.getUpdateusername() == null : this.getUpdateusername().equals(other.getUpdateusername()))
            && (this.getCreateusername() == null ? other.getCreateusername() == null : this.getCreateusername().equals(other.getCreateusername()))
            && (this.getForeignkey() == null ? other.getForeignkey() == null : this.getForeignkey().equals(other.getForeignkey()))
            && (this.getIsdynamicheader() == null ? other.getIsdynamicheader() == null : this.getIsdynamicheader().equals(other.getIsdynamicheader()))
            && (this.getParenttableid() == null ? other.getParenttableid() == null : this.getParenttableid().equals(other.getParenttableid()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getTablename() == null) ? 0 : getTablename().hashCode());
        result = prime * result + ((getComment() == null) ? 0 : getComment().hashCode());
        result = prime * result + ((getDetailtablename() == null) ? 0 : getDetailtablename().hashCode());
        result = prime * result + ((getDetailcomment() == null) ? 0 : getDetailcomment().hashCode());
        result = prime * result + ((getClassname() == null) ? 0 : getClassname().hashCode());
        result = prime * result + ((getNamespace() == null) ? 0 : getNamespace().hashCode());
        result = prime * result + ((getModulecode() == null) ? 0 : getModulecode().hashCode());
        result = prime * result + ((getModulename() == null) ? 0 : getModulename().hashCode());
        result = prime * result + ((getFolder() == null) ? 0 : getFolder().hashCode());
        result = prime * result + ((getOptions() == null) ? 0 : getOptions().hashCode());
        result = prime * result + ((getTypeid() == null) ? 0 : getTypeid().hashCode());
        result = prime * result + ((getTypename() == null) ? 0 : getTypename().hashCode());
        result = prime * result + ((getCreatetime() == null) ? 0 : getCreatetime().hashCode());
        result = prime * result + ((getCreateuserid() == null) ? 0 : getCreateuserid().hashCode());
        result = prime * result + ((getUpdatetime() == null) ? 0 : getUpdatetime().hashCode());
        result = prime * result + ((getUpdateuserid() == null) ? 0 : getUpdateuserid().hashCode());
        result = prime * result + ((getUpdateusername() == null) ? 0 : getUpdateusername().hashCode());
        result = prime * result + ((getCreateusername() == null) ? 0 : getCreateusername().hashCode());
        result = prime * result + ((getForeignkey() == null) ? 0 : getForeignkey().hashCode());
        result = prime * result + ((getIsdynamicheader() == null) ? 0 : getIsdynamicheader().hashCode());
        result = prime * result + ((getParenttableid() == null) ? 0 : getParenttableid().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", tablename=").append(tablename);
        sb.append(", comment=").append(comment);
        sb.append(", detailtablename=").append(detailtablename);
        sb.append(", detailcomment=").append(detailcomment);
        sb.append(", classname=").append(classname);
        sb.append(", namespace=").append(namespace);
        sb.append(", modulecode=").append(modulecode);
        sb.append(", modulename=").append(modulename);
        sb.append(", folder=").append(folder);
        sb.append(", options=").append(options);
        sb.append(", typeid=").append(typeid);
        sb.append(", typename=").append(typename);
        sb.append(", createtime=").append(createtime);
        sb.append(", createuserid=").append(createuserid);
        sb.append(", updatetime=").append(updatetime);
        sb.append(", updateuserid=").append(updateuserid);
        sb.append(", updateusername=").append(updateusername);
        sb.append(", createusername=").append(createusername);
        sb.append(", foreignkey=").append(foreignkey);
        sb.append(", isdynamicheader=").append(isdynamicheader);
        sb.append(", parenttableid=").append(parenttableid);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}